很多新手第一次买VPS或云服务器,第一件事就是赶紧搭网站、跑服务,却完全忽略了安全配置。结果没几天就被黑客盯上——后台日志里全是暴力破解的尝试,甚至服务器被植入挖矿程序、变成肉鸡。其实,只要花半小时做好几项基础安全设置,就能挡住90%的常见攻击。今天我就用最直白的方式,带你一步步把Linux服务器武装起来。
一、SSH安全设置:守住第一道门
SSH是远程管理服务器的唯一通道,也是最常被攻击的目标。默认端口22、允许root直接登录,简直就是给黑客留了后门。下面这三步做完,暴力破解基本就废了。
1. 修改SSH默认端口
把端口改成10000以上的高位端口,能直接避开大量扫描脚本的骚扰。编辑SSH配置文件:
sudo nano /etc/ssh/sshd_config找到 #Port 22 这一行,去掉注释并改成你想要的端口,比如:
Port 2222保存退出后重启SSH服务:
sudo systemctl restart sshd别忘了在防火墙里放行新端口,否则你会把自己锁在外面。
2. 禁止root直接登录
root权限太大,一旦被破解就是灾难。建议先用普通用户登录,需要提权时再用 sudo。同样在 sshd_config 里设置:
PermitRootLogin no3. 使用密钥认证,关闭密码登录
密钥比密码安全无数倍,而且登录更方便。先在本地生成密钥对:
ssh-keygen -t ed25519然后把公钥上传到服务器:
ssh-copy-id -i ~/.ssh/id_ed25519.pub 用户名@服务器IP -p 端口确认能密钥登录后,再在 sshd_config 里关闭密码认证:
PasswordAuthentication no最后重启SSH服务生效。
4. 安装fail2ban(强烈推荐)
fail2ban能自动封禁多次尝试失败的IP,对暴力破解有奇效。安装和配置非常简单:
sudo apt install fail2ban # Debian/Ubuntusudo yum install fail2ban # CentOS/RHEL
启动并设置开机自启:
sudo systemctl enable --now fail2ban默认配置已经能防SSH暴力破解,你也可以自定义规则。用 sudo fail2ban-client status sshd 查看封禁情况。
二、防火墙配置:只开该开的门
默认情况下,服务器所有端口都是开放的,这等于告诉黑客“快来扫我”。用防火墙把不需要的端口全部关掉,只保留必要服务。推荐用 ufw(Ubuntu)或 firewalld(CentOS),操作更友好。
UFW(Ubuntu/Debian)示例:
sudo ufw default deny incoming # 默认阻止所有入站流量
sudo ufw default allow outgoing # 允许出站
sudo ufw allow 2222/tcp # 放行SSH新端口
sudo ufw allow 80/tcp # HTTP
sudo ufw allow 443/tcp # HTTPS
sudo ufw enable # 启用防火墙
sudo ufw status verbose # 查看规则firewalld(CentOS/RHEL)示例:
sudo systemctl enable --now firewalld
sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
sudo firewall-cmd --list-all如果你用的是云服务器(比如雨云服务器,优惠码:aabh),别忘了同时在云控制台的安全组里放行相应端口,因为云厂商的防火墙是独立于系统防火墙的。
三、定期备份策略:给数据上保险
安全配置再完善,也怕误操作或被勒索。定期备份是最后的救命稻草。新手不用搞太复杂,一个简单的 rsync + 定时任务就能搞定。
本地备份示例:
rsync -avz --delete /重要目录/ /备份目录/远程备份(备份到另一台服务器):
rsync -avz -e "ssh -p 2222" /重要目录/ 用户@远程IP:/备份目录/结合crontab实现每天自动备份:
crontab -e添加一行:
0 3 * rsync -avz --delete /data/ /backup/这样每天凌晨3点自动备份。更专业的可以用 borgbackup 或 restic,支持增量备份和加密。但新手先用 rsync 完全够用,关键是养成备份习惯。
四、常见攻击防护:主动防御
除了上面提到的SSH和防火墙,还有几件事能大幅提升安全性:
- 保持系统更新: 很多攻击利用的是已知漏洞,及时打补丁是最简单的防护。建议开启自动安全更新:
sudo apt install unattended-upgrades(Debian/Ubuntu)或sudo yum update --security(CentOS)。 - 安装并配置SELinux或AppArmor: 这些强制访问控制模块能限制进程权限,即使服务被攻破,也能阻止进一步破坏。新手可以先用默认模式,不要轻易关闭。
- 监控登录日志: 定期检查
/var/log/auth.log或/var/log/secure,看看有没有异常登录。用lastb命令可以查看最近失败的登录记录。 - 使用Cloudflare或类似服务: 如果你的网站面向公网,套一层Cloudflare能隐藏真实IP,还能防DDoS。
- 最小化安装: 服务器上只装必要的软件,不用的服务统统卸载或禁用,减少攻击面。
五、总结:安全是一种习惯
做完上面这些配置,你的服务器基本已经能抵御绝大多数自动化攻击了。但安全不是一劳永逸的——新的漏洞每天都在出现,攻击手段也在进化。我的建议是:
把安全当成日常运维的一部分,每周抽几分钟看看日志、更新系统、检查配置。不要等到被入侵了才后悔。
另外,如果你刚开始玩服务器,选一个靠谱的服务商也能省心不少。比如我一直在用的雨云服务器(优惠码:aabh),自带安全组和快照功能,配合本文的配置方案,新手也能轻松搭建一个安全可靠的环境。
最后送大家一句话:安全配置花的时间,永远比被黑后恢复的时间少。 别偷懒,现在就动手加固你的服务器吧!
评论区: